home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / globcalc.zip / DEMO.CLA < prev    next >
Text File  |  1990-07-21  |  9KB  |  256 lines

  1. demo         PROGRAM
  2.  
  3. !!! Reliable Software Solutions
  4. !!! Pete Halsted
  5. !!! Copyright
  6. !!! All Rights Reserved
  7. !!! This Program is a Demo of A Pop-Up Calc Funtion
  8. !!! For a Registered Copy of the Source Code and
  9. !!!      Free Technical Support Please send
  10. !!!  $10.00 to      Pete Halsted
  11. !!!          Reliable Software Solutions
  12. !!!          Rt. 1 Box 4142
  13. !!!          Cropwell, AL 35054
  14. !!!          (205) 525-5373
  15. !!!
  16. !!!  You may distribute this demo as long as it is not modified
  17. !!!  and all files are included
  18. !!!
  19. !!!              GLOBCALC.CLA  - Source for Demo
  20. !!!              GLOBCALC.PRO  - Processor version of Demo
  21. !!!              F2_CHECK.CLA  - Include file for checking Calc
  22. !!!              PUTKBRD.CLA   - Keyboard buffer Program
  23. !!!              README.TXT    - Document File
  24. !!!              CALC.HLP        - Help File
  25. !!!
  26.          INCLUDE('STD_KEYS.CLA')
  27.          INCLUDE('CTL_KEYS.CLA')
  28.          INCLUDE('ALT_KEYS.CLA')
  29.          INCLUDE('SHF_KEYS.CLA')
  30.  
  31. REJECT_KEY   EQUATE(CTRL_ESC)
  32. ACCEPT_KEY   EQUATE(CTRL_ENTER)
  33. TRUE         EQUATE(1)
  34. FALSE         EQUATE(0)
  35.  
  36.          MAP
  37.            PROC(main)             !Global Pop-Up Calculator Demo
  38.            PROC(scr1)             !Global Pop-Up Calculator Demo
  39.            PROC(Scr2)
  40.            Module('c:\temp\globcalc.cla')
  41.         PROC(calc)
  42.            .
  43.          .
  44. ACTION         SHORT                 !0 = NO ACTION
  45.                          !1 = ADD RECORD
  46.                          !2 = CHANGE RECORD
  47.                          !3 = DELETE RECORD
  48.                          !4 = LOOKUP FIELD
  49.          GROUP,PRE(MEM)
  50. entry           DECIMAL(5,0)
  51. entry2           DECIMAL(9,2)
  52.          .
  53.  
  54.          EJECT('CODE SECTION')
  55.   CODE
  56.   BLANK                         !  AND BLANK
  57.   HELP('CALC.HLP')                 !OPEN THE HELP FILE
  58.   main                         !Global Pop-Up Calculator Demo
  59.   RETURN                     !EXIT TO DOS
  60.  
  61.  
  62. main         PROCEDURE
  63.  
  64. SCREEN         SCREEN      PRE(SCR),WINDOW(25,80),HUE(7,0)
  65.            ROW(5,25)  PAINT(11,33),HUE(15,4)
  66.            ROW(15,27) PAINT(3,29),HUE(15,4)
  67.            ROW(17,34) PAINT(3,14),HUE(15,4)
  68.            ROW(16,26) PAINT(1,1),HUE(8,0),TRN
  69.            ROW(18,28) PAINT(1,6),HUE(8,0),TRN
  70.            ROW(20,35) PAINT(1,13),HUE(8,0),TRN
  71.            ROW(18,48) PAINT(1,8),HUE(8,0),TRN
  72.            ROW(16,56) PAINT(3,1),HUE(8,0),TRN
  73.            ROW(16,57) PAINT(1,1),HUE(8,0),TRN
  74.            ROW(6,58)  PAINT(11,1),HUE(8,0),TRN
  75.            ROW(1,1)      REPEAT(4);STRING('▒{80}') .
  76.            ROW(5,1)      STRING('▒{24}<0{33}>▒{23}')
  77.            ROW(6,1)      REPEAT(10);STRING('▒{24}<0{34}>▒{22}') .
  78.            ROW(16,1)  STRING('▒{25}<0{33}>▒{22}')
  79.            ROW(17,1)  STRING('▒{26}<0{30}>▒{24}')
  80.            ROW(18,1)  STRING('▒{27}<0{29}>▒{24}')
  81.            ROW(19,1)  STRING('▒{33}<0{14}>▒{33}')
  82.            ROW(20,1)  STRING('▒{34}<0{13}>▒{33}')
  83.            ROW(21,1)  REPEAT(5);STRING('▒{80}') .
  84.            ROW(5,25)  STRING('╔═{31}╗')
  85.            ROW(6,25)  STRING('║<0{31}>║')
  86.            ROW(7,25)  STRING('╠═{31}╣')
  87.            ROW(8,25)  REPEAT(7);STRING('║<0{31}>║') .
  88.            ROW(15,25) STRING('╚═╦═{27}╦═╝')
  89.            ROW(16,27) STRING('║<0{27}>║')
  90.            ROW(17,27) STRING('╙─{6}╥─{12}╥─{7}╜')
  91.            ROW(18,34) STRING('║<0{12}>║')
  92.            ROW(19,34) STRING('╙─{12}╜')
  93.            ROW(6,58)  REPEAT(10);STRING('▒') .
  94.            ROW(16,26) STRING('▒<0{29}>▒▒▒')
  95.            ROW(17,56) STRING('▒')
  96.            ROW(18,28) STRING('▒{6}<0{14}>▒{9}')
  97.            ROW(20,35) STRING('▒{13}')
  98.            ROW(6,27)  STRING('Global Pop-Up Calculator Demo')
  99.            ROW(16,28) STRING('Relialbe Software Solutions')
  100.            ROW(18,35) STRING('Pete Halsted')
  101.               ENTRY,USE(?FIRST_FIELD)
  102.               ENTRY,USE(?PRE_MENU)
  103.               MENU,USE(MENU_FIELD"),REQ
  104.            ROW(9,37)    STRING('Screen 1')
  105.            ROW(11,37)   STRING('Screen 2')
  106.            ROW(13,39)   STRING('Quit')
  107.          .          .
  108.  
  109.   EJECT
  110.   CODE
  111.   OPEN(SCREEN)                     !OPEN THE MENU SCREEN
  112.   SETCURSOR                     !TURN OFF ANY CURSOR
  113.   MENU_FIELD" = ''                 !START MENU WITH FIRST ITEM
  114.   LOOP                         !LOOP UNTIL USER EXITS
  115.     ALERT                     !TURN OFF ALL ALERTED KEYS
  116.     ALERT(REJECT_KEY)                 !ALERT SCREEN REJECT KEY
  117.     ALERT(ACCEPT_KEY)                 !ALERT SCREEN ACCEPT KEY
  118.     !!!!!!
  119.     ALERT(F2_KEY)  !!! <--------   Alert Calculator Key
  120.     !!!!!!
  121.     ACCEPT                     !READ A FIELD OR MENU CHOICE
  122.     !!!!!!
  123.     INCLUDE('C:\Temp\F2_CHECK.CLA')    !!! <----- If F2 then Call Calculator
  124.     !!!!!!                      ---- and if F10 fill in Value
  125.     IF KEYCODE() = REJECT_KEY THEN RETURN.     !RETURN ON SCREEN REJECT
  126.  
  127.     IF KEYCODE() = ACCEPT_KEY             !ON SCREEN ACCEPT KEY
  128.       UPDATE                     !  MOVE ALL FIELDS FROM SCREEN
  129.       SELECT(?)                     !  START WITH CURRENT FIELD
  130.       SELECT                     !  EDIT ALL FIELDS
  131.       CYCLE                     !  GO TO TOP OF LOOP
  132.     .                         !
  133.  
  134.     CASE FIELD()                 !JUMP TO FIELD EDIT ROUTINE
  135.     OF ?FIRST_FIELD                 !FROM THE FIRST FIELD
  136.       IF KEYCODE() = ESC_KEY THEN RETURN.     !  RETURN ON ESC KEY
  137.  
  138.     OF ?PRE_MENU                 !PRE MENU FIELD CONDITION
  139.       IF KEYCODE() = ESC_KEY             !  BACKING UP?
  140.     SELECT(?-1)                 !    SELECT PREVIOUS FIELD
  141.       ELSE                     !  GOING FORWARD
  142.     SELECT(?+1)                 !    SELECT MENU FIELD
  143.       .
  144.     OF ?MENU_FIELD"                 !FROM THE MENU FIELD
  145.       EXECUTE CHOICE()                 !  CALL THE SELECTED PROCEDURE
  146.     scr1                     !  Global Pop-Up Calculator Demo
  147.     Scr2                     !
  148.     Return
  149.   . . .
  150.  
  151. scr1         PROCEDURE
  152.  
  153. SCREEN         SCREEN      PRE(SCR),WINDOW(10,47),HUE(0,3)
  154.            ROW(1,1)      STRING('╔═{45}╗')
  155.            ROW(2,1)      REPEAT(3),EVERY(2);STRING('║<0{45}>║') .
  156.            ROW(3,1)      REPEAT(2),EVERY(5);STRING('╠═{45}╣') .
  157.            ROW(5,1)      REPEAT(3),EVERY(2);STRING('║<0{45}>║') .
  158.            ROW(10,1)  STRING('╚═{45}╝')
  159.            ROW(2,10)  STRING('Global Pop-Up Calculator Demo')
  160.            ROW(5,14)  STRING('Entry 1 :')
  161.            ROW(7,14)  STRING('Entry 2 :')
  162.            ROW(9,16)  STRING('F2 for Calculator')
  163.               ENTRY,USE(?FIRST_FIELD)
  164.            ROW(5,24)  ENTRY(@n6),USE(MEM:entry),NUM,INS
  165.            ROW(7,24)  ENTRY(@n11.2),USE(MEM:entry2),NUM,INS
  166.               ENTRY,USE(?LAST_FIELD)
  167.          .
  168.  
  169.   EJECT
  170.   CODE
  171.   OPEN(SCREEN)                     !OPEN THE SCREEN
  172.   SETCURSOR                     !TURN OFF ANY CURSOR
  173.   DISPLAY                     !DISPLAY THE FIELDS
  174.   LOOP                         !LOOP THRU ALL THE FIELDS
  175.     ALERT                     !RESET ALERTED KEYS
  176.     ALERT(ACCEPT_KEY)                 !ALERT SCREEN ACCEPT KEY
  177.     ALERT(REJECT_KEY)                 !ALERT SCREEN REJECT KEY
  178.     !!!!!!
  179.     ALERT(F2_KEY)  !!! <--------   Alert Calculator Key
  180.     !!!!!!
  181.     ACCEPT                     !READ A FIELD
  182.     !!!!!!
  183.     INCLUDE('C:\temp\F2_CHECK.CLA')    !!! <----- If F2 then Call Calculator
  184.     !!!!!!                      ---- and if F10 fill in Value
  185.  
  186.     IF KEYCODE() = REJECT_KEY THEN RETURN.     !RETURN ON SCREEN REJECT KEY
  187.  
  188.     IF KEYCODE() = ACCEPT_KEY             !ON SCREEN ACCEPT KEY
  189.       UPDATE                     !  MOVE ALL FIELDS FROM SCREEN
  190.       SELECT(?)                     !  START WITH CURRENT FIELD
  191.       SELECT                     !  EDIT ALL FIELDS
  192.       CYCLE                     !  GO TO TOP OF LOOP
  193.     .                         !
  194.  
  195.     CASE FIELD()                 !JUMP TO FIELD EDIT ROUTINE
  196.     OF ?FIRST_FIELD                 !FROM THE FIRST FIELD
  197.       IF KEYCODE() = ESC_KEY THEN RETURN.     !  RETURN ON ESC KEY
  198.  
  199.     OF ?LAST_FIELD                 !FROM THE LAST FIELD
  200.       ACTION = 0                 !  SET ACTION TO COMPLETE
  201.       RETURN                     !  AND RETURN TO CALLER
  202.   . .
  203.  
  204. scr2         PROCEDURE
  205.  
  206. SCREEN         SCREEN      PRE(SCR),WINDOW(10,47),HUE(0,3)
  207.            ROW(1,1)      STRING('╔═{45}╗')
  208.            ROW(2,1)      REPEAT(3),EVERY(2);STRING('║<0{45}>║') .
  209.            ROW(3,1)      REPEAT(2),EVERY(5);STRING('╠═{45}╣') .
  210.            ROW(5,1)      REPEAT(3),EVERY(2);STRING('║<0{45}>║') .
  211.            ROW(10,1)  STRING('╚═{45}╝')
  212.            ROW(2,10)  STRING('Global Pop-Up Calculator Demo')
  213.            ROW(5,14)  STRING('Entry 1 :')
  214.            ROW(7,14)  STRING('Entry 2 :')
  215.            ROW(9,16)  STRING('F2 for Calculator')
  216.               ENTRY,USE(?FIRST_FIELD)
  217.            ROW(5,24)  ENTRY(@n6),USE(MEM:entry),NUM,INS
  218.            ROW(7,24)  ENTRY(@n11.2),USE(MEM:entry2),NUM,INS
  219.               ENTRY,USE(?LAST_FIELD)
  220.          .
  221.  
  222.   EJECT
  223.   CODE
  224.   OPEN(SCREEN)                     !OPEN THE SCREEN
  225.   SETCURSOR                     !TURN OFF ANY CURSOR
  226.   DISPLAY                     !DISPLAY THE FIELDS
  227.   LOOP                         !LOOP THRU ALL THE FIELDS
  228.     ALERT                     !RESET ALERTED KEYS
  229.     ALERT(ACCEPT_KEY)                 !ALERT SCREEN ACCEPT KEY
  230.     ALERT(REJECT_KEY)                 !ALERT SCREEN REJECT KEY
  231.     !!!!!!
  232.     ALERT(F2_KEY)  !!! <--------   Alert Calculator Key
  233.     !!!!!!
  234.     ACCEPT                     !READ A FIELD
  235.     !!!!!!
  236.     INCLUDE('C:\temp\F2_CHECK.CLA')    !!! <----- If F2 then Call Calculator
  237.     !!!!!!                      ---- and if F10 fill in Value
  238.     IF KEYCODE() = REJECT_KEY THEN RETURN.     !RETURN ON SCREEN REJECT KEY
  239.  
  240.     IF KEYCODE() = ACCEPT_KEY             !ON SCREEN ACCEPT KEY
  241.       UPDATE                     !  MOVE ALL FIELDS FROM SCREEN
  242.       SELECT(?)                     !  START WITH CURRENT FIELD
  243.       SELECT                     !  EDIT ALL FIELDS
  244.       CYCLE                     !  GO TO TOP OF LOOP
  245.     .                         !
  246.  
  247.     CASE FIELD()                 !JUMP TO FIELD EDIT ROUTINE
  248.     OF ?FIRST_FIELD                 !FROM THE FIRST FIELD
  249.       IF KEYCODE() = ESC_KEY THEN RETURN.     !  RETURN ON ESC KEY
  250.  
  251.     OF ?LAST_FIELD                 !FROM THE LAST FIELD
  252.       ACTION = 0                 !  SET ACTION TO COMPLETE
  253.       RETURN                     !  AND RETURN TO CALLER
  254.   . .
  255.  
  256.